/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean} valid value
 *
 * @properties={typeid:24,uuid:"A7B31B33-98BD-4CA5-8B81-E5F86948EA1C"}
 */
function tot_valores()
{
	if ((op_cabecera_to_op_detalle.importe==null) || (op_cabecera_to_op_detalle.importe==0))
	{
		globals.gMensaje="Debe ingresar Importe"
		globals.gMensajes()
		//elements.importe.requestFocus(true)
		return false; //27/07/2010
	}
	else
	{
	globals.gtotal_valores=0
	for ( var i = 1 ; i <= op_cabecera_to_op_detalle.getSize(); i++ )
	{
		op_cabecera_to_op_detalle.setSelectedIndex(i)
		//globals.gtotal_valores+= op_cabecera_to_op_detalle.importe
		globals.gtotal_valores = globals.operacion(globals.gtotal_valores,"+",op_cabecera_to_op_detalle.importe)
	}
	/* elements.valor_id.requestFocus(true) */
	return true; //27/07/2010
	}
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean} valid value
 *
 * @properties={typeid:24,uuid:"665926D2-F003-43AA-A9C5-DDBE7C1CE199"}
 */
function  valor_elegido() 
{
	globals.gcuentas_variable=0
	elements.importe.enabled=true;
	elements.cuenta_cyb_id.enabled=true;
	elements.cheque_nro.enabled=true;
	elements.fecha_emision_chq.enabled=true;
	elements.dias_pago.enabled=true; //27/07/2010
	elements.fecha_pago.enabled=false;  //27/07/2010
	if (op_detalle_to_valores.es_cheque==1)
	{ // es cheque  
		if (op_detalle_to_valores.es_propio== 1)
		{  // solo cheque de terceros //27/07/2010
			globals.gcuentas_variable=1
			if(fecha_emision_chq==null) //27/07/2010 sugerir al dar alta la fecha del dia
			{
				fecha_emision_chq=new Date();
			}
			if (op_detalle_to_valores.es_ch_difer==1) // 25/08/2010  (todo el if)
			{
				elements.fecha_pago.enabled=true;
			}
			else  // cheque propio no deferido poner fecha_emision=fecha_pago 
			{
				fecha_pago=new Date();
				elements.fecha_pago.enabled=false;
			}
			elements.importe.requestFocus(true) //27/07/2010
		}
	}
	else		
	{// es efectivo o transferencia  pedir importe y cta  //27/08/2010
	// poner foco en importe	no permitir ingresar los otros campos
	elements.importe.requestFocus(true)
	elements.cuenta_cyb_id.enabled=true;
	elements.cheque_nro.enabled=false;
	elements.fecha_pago.enabled=false;
	banco_sucursal=null;   // ? 
	elements.dias_pago.enabled=false; //27/07/2010
	if (op_detalle_to_valores.usa_cta_bco==1)//26/04/2010  es transferencia se agrega el if completo // 27/08/2010
	{
		elements.cheque_nro.enabled=true;
		elements.fecha_emision_chq.enabled=true; 
		globals.gcuentas_variable=1;          
	}  
	else
	{// es efectivo 04/06/2010
		banco_sucursal=null  
		elements.fecha_emision_chq.enabled=false;  
	}
	}
}

/**
 *
 * @properties={typeid:24,uuid:"A9D88ADF-9475-430C-A79E-7DCC5402CF75"}
 */
function validar_importe() 
{
	if ((op_cabecera_to_op_detalle.importe==null) || (op_cabecera_to_op_detalle.importe==0))
	{
		globals.gMensaje="Debe ingresar Importe"
		globals.gMensajes()
		elements.importe.requestFocus(true)
		return false; 
	}
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean} valid value
 *
 * @properties={typeid:24,uuid:"7B7F2172-9BFB-4555-9AB3-52D18239915B"}
 */
function onDataChange_fecha_emision() 
{  
	if (op_detalle_to_valores.es_cheque==1)
	{
		elements.fecha_pago.enabled=true;
		if (op_detalle_to_valores.es_ch_difer!=1)
		{
			fecha_pago=fecha_emision_chq
			elements.fecha_pago.enabled=false; //27/08/2010
		}
		else
		{
			calcula_fecha_pago(); // 16/11/2010
		}
	}
}

/**
 * Perform the element default action.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"289CF3A9-BAA5-409E-BF37-F23BC27B4927"}
 */
function prepara_renglon() 
{
	////////////////////////////////////////////
	elements.importe.enabled=true;
	elements.cuenta_cyb_id.enabled=true;
	elements.cheque_nro.enabled=true;
	elements.fecha_emision_chq.enabled=true;
	elements.dias_pago.enabled=true; //27/07/2010
	elements.fecha_pago.enabled=false;  //27/07/2010
	globals.gcuentas_variable=0
	if (op_detalle_to_valores.es_cheque==1)
	{ // es cheque   habilita ingreso de todos los campos
		if (op_detalle_to_valores.es_propio== 1)
		{// es propio
			globals.gcuentas_variable=1
		}
	}
	else		
	{// es efectivo o transferencia pedir solo importe y cta 27/08/2010		
		elements.cuenta_cyb_id.enabled=true;
		elements.cheque_nro.enabled=false;
		if (op_detalle_to_valores.usa_cta_bco==1) //26/04/2010  es transferencia se agrega el if completo con el else
		{
		elements.cheque_nro.enabled=true;  
		elements.fecha_emision_chq.enabled=true;
		globals.gcuentas_variable=1;          
		}
		else // es efectivo
		{
		cheque_nro=null;
		elements.fecha_emision_chq.enabled=false;
		elements.fecha_pago.enabled=false;
		fecha_emision_chq=null
		fecha_pago=null
		}
		elements.dias_pago.enabled=false; //27/07/2010
	}
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean} valid value
 *
 * @properties={typeid:24,uuid:"DDCB2429-3228-4E44-9360-ED1333789A9E"}
 */
function valor_elegido_2(oldValue, newValue, event) 
{
	if(event.getType()==JSEvent.DATACHANGE)
		prepara_renglon();
	else
	{
		if(valor_id != null)
			prepara_renglon();
	}
	   
	return true;
}

/**
 * Handle record selected.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @properties={typeid:24,uuid:"98B762BB-05D6-4906-BD60-F89B0E2F2E05"}
 */
function onRecordSelected_detalle(event) 
{
	if(valor_id != null)
		prepara_renglon();
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean} valid value
 *
 * @properties={typeid:24,uuid:"A1D1A3ED-6445-462A-84F6-0FE9F1892035"}
 */
function banco_propio(oldValue, newValue, event) 
{
	var estado=ver_saldo();
	if (estado==true)
	{
	if (op_detalle_to_valores.es_cheque==1)
	{
		cheque_nro=null  //05/10/2010  si cambian en banco y queda en nro de cheque, no lo valida cheque luego porque no cambia no pasa por el on_datachange
		banco_sucursal=op_detalle_to_cuentas_cyb.descripcion;  // 21/07/2010  nueva relacion
		if(op_detalle_to_valores.es_propio== 1)
		{
		//para cheque propio poner banco_id de tabla cuentas_cyb en el detalle // 16/07/2010
		banco_id=op_detalle_to_cuentas_cyb.banco_id; // 21/07/2010  se creó la relacion
		}
	}
	return true;       //28/07/2010
	}                  //28/07/2010
	else               //28/07/2010
	{                  //28/07/2010
		return false;  //28/07/2010
	}
}

/**
 *
 * @properties={typeid:24,uuid:"DD6D5EE3-6F00-4523-96DF-091DB2B579DB"}
 */
function ver_saldo()  // 27/08/2010
{
	// solo buscar saldo de caja cuando es efectivo // 27/07/2010
if(op_cabecera_to_op_detalle.op_detalle_to_valores.usa_cta_bco==1) // es trasnferencia
		return true;
if (op_cabecera_to_op_detalle.op_detalle_to_valores.es_cheque==1)  // es cheque
		return true;    
// es efectivo: debe chequear saldo    
	var fs_saldos=databaseManager.getFoundSet(controller.getServerName(),'saldos_caja')
	var estado=fs_saldos.find()
	if (estado==true)
	{
	fs_saldos.cuentas_cyb_id=cuentas_cyb_id;
	fs_saldos.moneda_id=1; // 15/06/2010 - SE ASUME moneda default - debería ser una global
	var found=fs_saldos.search();
	if (found==1)  
	{ // ver saldo existente 
		fs_saldos.setSelectedIndex(1);
    	if (importe>fs_saldos.saldo_efectivo)
    	{ // importe supera lo existente en caja
    		globals.gMensaje="Efectivo a pagar supera el saldo de la caja $" + fs_saldos.saldo_efectivo;
			globals.gMensajes();
			return false;
    	}
    	else
    		return true;
    }
    else
	{
    	return false;
	}
	}
	else
	{
		globals.gMensaje="Error : no existe saldo de caja" ;
		globals.gMensajes();
		return false;
	}    
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"808960FC-B857-4582-84E1-1DB90646DE39"}
 */
function onDataChange_importe(oldValue, newValue, event) 
{
if (cuentas_cyb_id==null)  //27/08/2010
{
	var estado=tot_valores();
	if (estado==false)
		return false;
	if (cuentas_cyb_id==null)
	{
	elements.cuenta_cyb_id.requestFocus(true);
	return true;  //27/08/2010
	}
}
else
{
		// 29/07/2010 var estado=banco_propio();  // si es cheque en ver_saldo() lo saltea
		var estado=ver_saldo();  //29/07/2010
		if (estado==true)
		{	
		var estado=tot_valores();
		if (estado==false)
		{
			elements.importe.requestFocus(true);
			return false;
		}
		}
		else
		{
			elements.importe.requestFocus(true);
			// return false;//29/07/2010
 		}
}	
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"279DD982-F5AF-457A-8DC2-1C32627F5654"}
 */
function calcula_fecha_pago(oldValue, newValue, event) 
{
	if(op_detalle_to_valores.es_cheque==1 && op_detalle_to_valores.es_propio==1) //es cheque propio
	{
		if (dias_pago!=null)
		{
		fecha_pago=new Date();
		//fecha_pago=fecha_pago.setDate (fecha_pago.getDate() + dias_pago); //16/11/2010
		fecha_pago=fecha_pago.setDate (fecha_emision_chq.getDate() + dias_pago); //16/11/2010 tomar fecha emision para calculo de fecha_pago
		return;
		}
	}
}

/**
 * Handle changed data.
 *
 * @param {Object} oldValue old value
 * @param {Object} newValue new value
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"FA4C96FB-A8C6-4757-AD75-1AB801EDB821"}
 */
function onDataChange_cheque_nro(oldValue, newValue, event)  //27/08/2010
{
if (op_detalle_to_valores.es_cheque==1) 
	{ // es cheque  
		if (op_detalle_to_valores.es_propio==1) // es propio
		{
			globals.duplicacion_cheques(valor_id,banco_id,cheque_nro)
			if (globals.gfilas!=0)  // si es cero, no existe
			{ // ya existe , lo rechaza
				globals.gMensaje = 'Ya existe ' + op_detalle_to_valores.valor_descripcion + ' nro. ' + cheque_nro + ' de banco ' + op_detalle_to_cuentas_cyb.descripcion;
				globals.gMensajes();
				return false;
			}
			if (op_detalle_to_valores.es_ch_difer==1) // 25/08/2010  (todo el if)
			{
				elements.dias_pago.requestFocus();
			}
			else  // cheque propio no deferido poner fecha_emision=fecha_pago 
			{
				fecha_pago=new Date();
				elements.fecha_pago.enabled=false;
			}
		}
	}
}

/**
 * Handle focus element loosing focus.
 *
 * @param {JSEvent} event the event that triggered the action
 *
 * @returns {Boolean}
 *
 * @properties={typeid:24,uuid:"BCADCB6F-366F-4CC3-ACF6-7B92F858591D"}
 */
function onFocusLost_fecha_pago(event) //27/08/2010 
{
	if (op_detalle_to_valores.es_cheque==1) 
	{ // es cheque  
		if (op_detalle_to_valores.es_propio==1) // es propio
		{
			if (op_detalle_to_valores.es_ch_difer==1)
			{
				if(fecha_pago==null)
					elements.fecha_pago.requestFocus();
			}
		}
	}
	
}
